package br.unicamp.ic.lis.dbvapi.service;

import java.util.List;

import br.unicamp.ic.lis.dbvapi.domain.AbstractPhysicalVersion;
import br.unicamp.ic.lis.dbvapi.domain.DBV;
import br.unicamp.ic.lis.dbvapi.domain.LogicalVersion;
import br.unicamp.ic.lis.dbvapi.domain.MultiversionObject;
import br.unicamp.ic.lis.dbvapi.domain.Scale;

public interface LogicalVersionService extends Service<LogicalVersion> {

	void add(LogicalVersion lv);

	void update(LogicalVersion lv);

	void remove(LogicalVersion lv);

	void synchronize(LogicalVersion lv);

	List<LogicalVersion> getChanges(DBV dbv);

	List<LogicalVersion> getLogicalVersions(DBV dbv);

	List<LogicalVersion> getLogicalVersions(String stamp, Scale scale);

	List<LogicalVersion> getLogicalVersions(
			MultiversionObject multiVersionObject,
			AbstractPhysicalVersion<?> physicalVersion);
}
